[INFO] cloning repository https://github.com/sanchuanhehe/hisiflash
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sanchuanhehe/hisiflash" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsanchuanhehe%2Fhisiflash", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsanchuanhehe%2Fhisiflash'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c067dac5b4703b637b4f3a4f6aad86cf72e209f9
[INFO] testing sanchuanhehe/hisiflash against master#f9988fefd3add01f414f52b414308e7872622fee for pr-155114
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsanchuanhehe%2Fhisiflash" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/sanchuanhehe/hisiflash
[INFO] finished tweaking git repo https://github.com/sanchuanhehe/hisiflash
[INFO] tweaked toml for git repo https://github.com/sanchuanhehe/hisiflash written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/sanchuanhehe/hisiflash on toolchain f9988fefd3add01f414f52b414308e7872622fee
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/sanchuanhehe/hisiflash already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded unescaper v0.1.8
[INFO] [stderr]   Downloaded libudev v0.3.0
[INFO] [stderr]   Downloaded zmij v1.0.17
[INFO] [stderr]   Downloaded rust-i18n v3.1.5
[INFO] [stderr]   Downloaded predicates-core v1.0.10
[INFO] [stderr]   Downloaded serialport v4.8.1
[INFO] [stderr]   Downloaded ctrlc v3.5.1
[INFO] [stderr]   Downloaded base62 v2.2.3
[INFO] [stderr]   Downloaded rust-i18n-support v3.1.5
[INFO] [stderr]   Downloaded rust-i18n-macro v3.1.5
[INFO] [stderr]   Downloaded directories v6.0.0
[INFO] [stderr]   Downloaded globset v0.4.18
[INFO] [stderr]   Downloaded normpath v1.5.0
[INFO] [stderr]   Downloaded predicates v3.1.4
[INFO] [stderr]   Downloaded block2 v0.6.2
[INFO] [stderr]   Downloaded triomphe v0.1.15
[INFO] [stderr]   Downloaded predicates-tree v1.0.13
[INFO] [stderr]   Downloaded ignore v0.4.25
[INFO] [stderr]   Downloaded assert_cmd v2.1.2
[INFO] [stderr]   Downloaded clap_complete v4.5.65
[INFO] [stderr]   Downloaded crossterm v0.28.1
[INFO] [stderr]   Downloaded bstr v1.12.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 21f4111d55c87eee8fa3ca6a443bc280ec6efcec7b3f997845c42177df1e8898
[INFO] running `Command { std: "docker" "start" "-a" "21f4111d55c87eee8fa3ca6a443bc280ec6efcec7b3f997845c42177df1e8898", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "21f4111d55c87eee8fa3ca6a443bc280ec6efcec7b3f997845c42177df1e8898", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "21f4111d55c87eee8fa3ca6a443bc280ec6efcec7b3f997845c42177df1e8898", kill_on_drop: false }`
[INFO] [stdout] 21f4111d55c87eee8fa3ca6a443bc280ec6efcec7b3f997845c42177df1e8898
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 93a7e86ae09f8d45962400da7f404edc91bc9a18b518b6b5fd3e4cccd2d0c1ee
[INFO] running `Command { std: "docker" "start" "-a" "93a7e86ae09f8d45962400da7f404edc91bc9a18b518b6b5fd3e4cccd2d0c1ee", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling zmij v1.0.17
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling arc-swap v1.8.0
[INFO] [stderr]    Compiling libudev-sys v0.1.4
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling ryu v1.0.22
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling itertools v0.11.0
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling normpath v1.5.0
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling base62 v2.2.3
[INFO] [stderr]    Compiling siphasher v1.0.1
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]    Compiling portable-atomic v1.13.0
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling clap_lex v0.7.7
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling clap_builder v4.5.54
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling hisiflash-cli v1.0.0-alpha.12 (/opt/rustwide/workdir/hisiflash-cli)
[INFO] [stderr]    Compiling jiff v0.2.18
[INFO] [stderr]    Compiling shell-words v1.1.1
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling sys-locale v0.3.2
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling libudev v0.3.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling nix v0.26.4
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling indicatif v0.17.11
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling directories v6.0.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling tempfile v3.24.0
[INFO] [stderr]    Compiling ctrlc v3.5.1
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling env_filter v0.1.4
[INFO] [stderr]    Compiling ignore v0.4.25
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling globwalk v0.8.1
[INFO] [stderr]    Compiling unescaper v0.1.8
[INFO] [stderr]    Compiling env_logger v0.11.8
[INFO] [stderr]    Compiling serialport v4.8.1
[INFO] [stderr]    Compiling rust-i18n v3.1.5
[INFO] [stderr]    Compiling hisiflash v0.4.0 (/opt/rustwide/workdir/hisiflash)
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling dialoguer v0.11.0
[INFO] [stderr]    Compiling clap v4.5.54
[INFO] [stderr]    Compiling clap_complete v4.5.65
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling triomphe v0.1.15
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling rust-i18n-support v3.1.5
[INFO] [stderr]    Compiling rust-i18n-macro v3.1.5
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 49.48s
[INFO] running `Command { std: "docker" "inspect" "93a7e86ae09f8d45962400da7f404edc91bc9a18b518b6b5fd3e4cccd2d0c1ee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "93a7e86ae09f8d45962400da7f404edc91bc9a18b518b6b5fd3e4cccd2d0c1ee", kill_on_drop: false }`
[INFO] [stdout] 93a7e86ae09f8d45962400da7f404edc91bc9a18b518b6b5fd3e4cccd2d0c1ee
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cbda7e66653a8d2562b3ecbdd37e39b953b923cd19c5a85bc2353ca21a0bb890
[INFO] running `Command { std: "docker" "start" "-a" "cbda7e66653a8d2562b3ecbdd37e39b953b923cd19c5a85bc2353ca21a0bb890", kill_on_drop: false }`
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling assert_cmd v2.1.2
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling env_filter v0.1.4
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling env_logger v0.11.8
[INFO] [stderr]    Compiling ignore v0.4.25
[INFO] [stderr]    Compiling hisiflash v0.4.0 (/opt/rustwide/workdir/hisiflash)
[INFO] [stderr]    Compiling globwalk v0.8.1
[INFO] [stderr]    Compiling rust-i18n-support v3.1.5
[INFO] [stderr]    Compiling rust-i18n v3.1.5
[INFO] [stderr]    Compiling rust-i18n-macro v3.1.5
[INFO] [stderr]    Compiling hisiflash-cli v1.0.0-alpha.12 (/opt/rustwide/workdir/hisiflash-cli)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 26.18s
[INFO] running `Command { std: "docker" "inspect" "cbda7e66653a8d2562b3ecbdd37e39b953b923cd19c5a85bc2353ca21a0bb890", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cbda7e66653a8d2562b3ecbdd37e39b953b923cd19c5a85bc2353ca21a0bb890", kill_on_drop: false }`
[INFO] [stdout] cbda7e66653a8d2562b3ecbdd37e39b953b923cd19c5a85bc2353ca21a0bb890
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] ff74478587c17db3cb62c53f353b3d51e400dd25714ceb05375440094d14cef3
[INFO] running `Command { std: "docker" "start" "-a" "ff74478587c17db3cb62c53f353b3d51e400dd25714ceb05375440094d14cef3", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.27s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/hisiflash-fb9fe0e7b953ba4f)
[INFO] [stdout] 
[INFO] [stdout] running 148 tests
[INFO] [stdout] test device::tests::test_detected_port_is_likely_hisilicon ... ok
[INFO] [stdout] test device::tests::test_device_kind_is_known ... ok
[INFO] [stdout] test device::tests::test_format_port_list ... ok
[INFO] [stdout] test error::tests::test_error_display_messages ... ok
[INFO] [stdout] test error::tests::test_error_from_io ... ok
[INFO] [stdout] test error::tests::test_error_is_send_sync ... ok
[INFO] [stdout] test image::fwpkg::tests::test_fwpkg_bin_data ... ok
[INFO] [stdout] test image::fwpkg::tests::test_fwpkg_bin_data_out_of_bounds ... ok
[INFO] [stdout] test image::fwpkg::tests::test_fwpkg_debug_format ... ok
[INFO] [stdout] test image::fwpkg::tests::test_fwpkg_from_bytes_valid_v1 ... ok
[INFO] [stdout] test image::fwpkg::tests::test_fwpkg_verify_crc ... ok
[INFO] [stdout] test image::fwpkg::tests::test_fwpkg_from_bytes_invalid_magic ... ok
[INFO] [stdout] test image::fwpkg::tests::test_header_is_valid ... ok
[INFO] [stdout] test image::fwpkg::tests::test_header_read_from_invalid_magic ... ok
[INFO] [stdout] test image::fwpkg::tests::test_header_read_v1 ... ok
[INFO] [stdout] test image::fwpkg::tests::test_header_sizes ... ok
[INFO] [stdout] test image::fwpkg::tests::test_magic_constants ... ok
[INFO] [stdout] test image::fwpkg::tests::test_partition_type_all_variants ... ok
[INFO] [stdout] test monitor::tests::test_clean_monitor_text_filters_control_chars ... ok
[INFO] [stdout] test image::fwpkg::tests::test_partition_type_as_u32 ... ok
[INFO] [stdout] test image::fwpkg::tests::test_partition_type_from_u32 ... ok
[INFO] [stdout] test image::fwpkg::tests::test_partition_type_roundtrip ... ok
[INFO] [stdout] test image::fwpkg::tests::test_partition_type_loaderboot_alias ... ok
[INFO] [stdout] test monitor::tests::test_drain_utf8_lossy_keeps_incomplete_suffix ... ok
[INFO] [stdout] test monitor::tests::test_drain_utf8_lossy_replaces_invalid_bytes_and_continues ... ok
[INFO] [stdout] test port::native::tests::test_serial_config_default ... ok
[INFO] [stdout] test port::tests::test_data_bits_default ... ok
[INFO] [stdout] test port::tests::test_flow_control_default ... ok
[INFO] [stdout] test port::tests::test_parity_default ... ok
[INFO] [stdout] test port::tests::test_port_info_clone ... ok
[INFO] [stdout] test port::tests::test_serial_config_default ... ok
[INFO] [stdout] test port::tests::test_serial_config_from_string ... ok
[INFO] [stdout] test port::tests::test_port_info_fields ... ok
[INFO] [stdout] test image::fwpkg::tests::test_header_read_from_auto_detect_v1 ... ok
[INFO] [stdout] test monitor::tests::test_format_output_no_timestamp_updates_line_state ... ok
[INFO] [stdout] test image::fwpkg::tests::test_fwpkg_verify_crc_mismatch ... ok
[INFO] [stdout] test port::native::tests::test_serial_config_builder ... ok
[INFO] [stdout] test port::tests::test_stop_bits_default ... ok
[INFO] [stdout] test port::tests::test_serial_config_new ... ok
[INFO] [stdout] test monitor::tests::test_format_output_normalizes_standalone_cr_to_newline ... ok
[INFO] [stdout] test protocol::crc::tests::test_crc16_xmodem_123456789 ... ok
[INFO] [stdout] test protocol::crc::tests::test_crc16_xmodem_empty ... ok
[INFO] [stdout] test protocol::seboot::tests::test_command_type_reversed ... ok
[INFO] [stdout] test protocol::seboot::tests::test_command_type_reversed_is_bitwise_not ... ok
[INFO] [stdout] test protocol::seboot::tests::test_command_type_swapped ... ok
[INFO] [stdout] test image::fwpkg::tests::test_bin_info_is_loaderboot ... ok
[INFO] [stdout] test protocol::seboot::tests::test_contains_handshake_ack ... ok
[INFO] [stdout] test protocol::seboot::tests::test_contains_handshake_ack_at_start ... ok
[INFO] [stdout] test port::tests::test_enums_are_copy ... ok
[INFO] [stdout] test protocol::seboot::tests::test_download_flash_image_frame ... ok
[INFO] [stdout] test protocol::seboot::tests::test_contains_handshake_ack_too_short ... ok
[INFO] [stdout] test protocol::seboot::tests::test_download_flash_image_rom_flag ... ok
[INFO] [stdout] test protocol::seboot::tests::test_download_nv_frame ... ok
[INFO] [stdout] test protocol::seboot::tests::test_contains_handshake_ack_not_found ... ok
[INFO] [stdout] test port::tests::test_serial_config_with_timeout ... ok
[INFO] [stdout] test protocol::crc::tests::test_crc16_xmodem_hello ... ok
[INFO] [stdout] test protocol::crc::tests::test_crc16_xmodem_update ... ok
[INFO] [stdout] test protocol::seboot::tests::test_download_version_frame ... ok
[INFO] [stdout] test protocol::seboot::tests::test_erase_all_frame ... ok
[INFO] [stdout] test protocol::seboot::tests::test_frame_command_type_getter ... ok
[INFO] [stdout] test protocol::seboot::tests::test_frame_crc_is_appended ... ok
[INFO] [stdout] test protocol::seboot::tests::test_handshake_frame_length ... ok
[INFO] [stdout] test protocol::seboot::tests::test_handshake_frame_baud_rate ... ok
[INFO] [stdout] test protocol::seboot::tests::test_seboot_ack_parse_no_magic ... ok
[INFO] [stdout] test protocol::seboot::tests::test_seboot_ack_parse_failure ... ok
[INFO] [stdout] test protocol::seboot::tests::test_flash_lock_frame ... ok
[INFO] [stdout] test protocol::seboot::tests::test_seboot_ack_parse_with_prefix ... ok
[INFO] [stdout] test protocol::seboot::tests::test_seboot_ack_parse_success ... ok
[INFO] [stdout] test protocol::seboot::tests::test_switch_dfu_frame ... ok
[INFO] [stdout] test protocol::seboot::tests::test_seboot_ack_parse_too_short ... ok
[INFO] [stdout] test protocol::seboot::tests::test_reset_frame ... ok
[INFO] [stdout] test protocol::seboot::tests::test_set_baud_rate_frame ... ok
[INFO] [stdout] test image::fwpkg::tests::test_bin_info_read_v1 ... ok
[INFO] [stdout] test protocol::seboot::tests::test_image_type_from_u32 ... ok
[INFO] [stdout] test protocol::seboot::tests::test_read_otp_efuse_frame ... ok
[INFO] [stdout] test protocol::seboot::tests::test_upload_data_frame ... ok
[INFO] [stdout] test protocol::ymodem::tests::test_transfer_interrupted_before_start ... ok
[INFO] [stdout] test image::fwpkg::tests::test_fwpkg_from_bytes_too_small ... ok
[INFO] [stdout] test target::chip::tests::test_chip_config_bs2x_defaults ... ok
[INFO] [stdout] test target::chip::tests::test_chip_config_builder ... ok
[INFO] [stdout] test protocol::ymodem::tests::test_wait_for_c_interrupted_immediate ... ok
[INFO] [stdout] test protocol::ymodem::tests::test_ymodem_handles_ack_and_c_in_same_eot_chunk ... ok
[INFO] [stdout] test target::chip::tests::test_chip_family_default ... ok
[INFO] [stdout] test target::chip::tests::test_chip_family_default_baud ... ok
[INFO] [stdout] test target::chip::tests::test_chip_family_display ... ok
[INFO] [stdout] test target::chip::tests::test_chip_family_clone_eq ... ok
[INFO] [stdout] test target::chip::tests::test_chip_family_from_name ... ok
[INFO] [stdout] test target::chip::tests::test_chip_config_default_trait ... ok
[INFO] [stdout] test target::chip::tests::test_chip_family_efuse ... ok
[INFO] [stdout] test target::chip::tests::test_chip_family_hash ... ok
[INFO] [stdout] test target::chip::tests::test_chip_family_from_name_case_insensitive ... ok
[INFO] [stdout] test target::chip::tests::test_chip_family_high_speed_baud ... ok
[INFO] [stdout] test target::chip::tests::test_chip_family_signed_firmware ... ok
[INFO] [stdout] test target::chip::tests::test_chip_family_supported_bauds ... ok
[INFO] [stdout] test target::chip::tests::test_chip_family_usb_dfu ... ok
[INFO] [stdout] test target::chip::tests::test_create_flasher_unsupported_chip ... ok
[INFO] [stdout] test target::ws63::flasher::tests::test_create_flasher_with_port_shared_seboot_chips ... ok
[INFO] [stdout] test target::ws63::flasher::tests::test_create_flasher_with_mock_port ... ok
[INFO] [stdout] test target::ws63::flasher::tests::test_create_flasher_with_port_unsupported_chip ... ok
[INFO] [stdout] test target::ws63::flasher::tests::test_download_binary_interrupted_short_circuits_retry ... ok
[INFO] [stdout] test target::ws63::flasher::tests::test_download_frame_erase_size_in_bytes ... ok
[INFO] [stdout] test target::ws63::flasher::tests::test_erase_size_alignment_4k ... ok
[INFO] [stdout] test target::ws63::flasher::tests::test_flasher_builder_methods ... ok
[INFO] [stdout] test target::ws63::flasher::tests::test_flasher_new_with_mock_port ... ok
[INFO] [stdout] test image::fwpkg::tests::test_fwpkg_version_header_size ... ok
[INFO] [stdout] test target::chip::tests::test_chip_config_defaults ... ok
[INFO] [stdout] test target::ws63::flasher::tests::test_flasher_trait_object ... ok
[INFO] [stdout] test target::ws63::flasher::tests::test_is_interrupted_error_for_io_interrupted_and_message ... ok
[INFO] [stdout] test target::ws63::flasher::tests::test_mock_port_name ... ok
[INFO] [stdout] test target::ws63::flasher::tests::test_mock_port_buffers ... ok
[INFO] [stdout] test target::ws63::flasher::tests::test_mock_port_read_write ... ok
[INFO] [stdout] test target::ws63::flasher::tests::test_multiple_flashers_same_port ... ok
[INFO] [stdout] test target::ws63::flasher::tests::test_mock_port_pin_control ... ok
[INFO] [stdout] test target::ws63::flasher::tests::test_wait_for_magic_finds_magic ... ok
[INFO] [stdout] test target::ws63::flasher::tests::test_wait_for_magic_partial_then_real ... ok
[INFO] [stdout] test device::tests::test_device_kind_from_vid_pid ... ok
[INFO] [stdout] test protocol::ymodem::tests::test_build_block_soh ... ok
[INFO] [stdout] test protocol::ymodem::tests::test_build_block_stx ... ok
[INFO] [stdout] test target::ws63::protocol::tests::test_command_swapped ... ok
[INFO] [stdout] test target::ws63::flasher::tests::test_mock_port_baud_timeout ... ok
[INFO] [stdout] test target::ws63::protocol::tests::test_command_frame_command_getter ... ok
[INFO] [stdout] test target::ws63::protocol::tests::test_contains_handshake_ack ... ok
[INFO] [stdout] test target::ws63::protocol::tests::test_download_frame ... ok
[INFO] [stdout] test target::ws63::protocol::tests::test_erase_all_frame ... ok
[INFO] [stdout] test target::ws63::protocol::tests::test_frame_length_field_matches_actual ... ok
[INFO] [stdout] test target::ws63::protocol::tests::test_constants ... ok
[INFO] [stdout] test target::ws63::protocol::tests::test_reset_frame_structure ... ok
[INFO] [stdout] test target::ws63::protocol::tests::test_frame_magic_bytes ... ok
[INFO] [stdout] test target::ws63::protocol::tests::test_handshake_frame ... ok
[INFO] [stdout] test target::ws63::protocol::tests::test_response_frame_parse_failure ... ok
[INFO] [stdout] test target::ws63::protocol::tests::test_response_frame_parse_handshake_ack ... ok
[INFO] [stdout] test target::ws63::protocol::tests::test_response_frame_parse_no_magic ... ok
[INFO] [stdout] test target::ws63::protocol::tests::test_response_frame_parse_too_short ... ok
[INFO] [stdout] test tests::test_interrupt_checker_default_false ... ok
[INFO] [stdout] test tests::test_interrupt_checker_toggle_true_false ... ok
[INFO] [stdout] test target::ws63::protocol::tests::test_response_frame_parse_with_prefix ... ok
[INFO] [stdout] test protocol::ymodem::tests::test_ymodem_transfer_exact_block_size ... ok
[INFO] [stdout] test protocol::ymodem::tests::test_ymodem_transfer_single_c_wait ... ok
[INFO] [stdout] test protocol::ymodem::tests::test_ymodem_no_c_before_finish ... ok
[INFO] [stdout] test protocol::ymodem::tests::test_ymodem_transfer_multi_block ... ok
[INFO] [stdout] test target::ws63::flasher::tests::test_wait_for_magic_timeout_no_magic ... ok
[INFO] [stdout] test protocol::ymodem::tests::test_ymodem_transfer_accepts_ack_amid_noise ... ok
[INFO] [stdout] test protocol::ymodem::tests::test_ymodem_transfer_retries_block_on_c_request ... ok
[INFO] [stdout] test port::native::tests::test_list_ports ... ok
[INFO] [stdout] test target::chip::tests::test_create_flasher_supported_shared_seboot_chips ... ok
[INFO] [stdout] test protocol::ymodem::tests::test_ymodem_skips_finish_without_c_when_configured ... ok
[INFO] [stdout] test target::ws63::flasher::tests::test_loaderboot_no_download_command ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/hisiflash-9dfdfb3c7b713e01)
[INFO] [stdout] test target::ws63::flasher::tests::test_normal_partition_sends_download_command ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 148 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 30.06s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 187 tests
[INFO] [stdout] test cli_tests::test_chip_to_chip_family ... ok
[INFO] [stdout] test cli_tests::test_cli_parse_completions ... ok
[INFO] [stdout] test cli_tests::test_cli_parse_erase ... ok
[INFO] [stdout] test cli_tests::test_build_localized_command_has_subcommands ... ok
[INFO] [stdout] test cli_tests::test_apply_config_defaults_invalid_chip ... ok
[INFO] [stdout] test cli_tests::test_cli_parse_flash_with_all_options ... ok
[INFO] [stdout] test cli_tests::test_cli_parse_flash_without_firmware ... ok
[INFO] [stdout] test cli_tests::test_cli_command_is_valid ... ok
[INFO] [stdout] test cli_tests::test_cli_parse_flash ... ok
[INFO] [stdout] test cli_tests::test_cli_default_values ... ok
[INFO] [stdout] test cli_tests::test_cli_parse_info ... ok
[INFO] [stdout] test cli_tests::test_cli_parse_info_json ... ok
[INFO] [stdout] test cli_tests::test_apply_config_defaults_for_flash ... ok
[INFO] [stdout] test cli_tests::test_cli_parse_flash_monitor_port ... ok
[INFO] [stdout] test cli_tests::test_cli_parse_monitor_default_baud ... ok
[INFO] [stdout] test cli_tests::test_cli_parse_monitor_with_monitor_port ... ok
[INFO] [stdout] test cli_tests::test_all_subcommands_have_localized_about_zh_cn ... ok
[INFO] [stdout] test cli_tests::test_cli_parse_list_ports ... ok
[INFO] [stdout] test cli_tests::test_build_localized_command_zh_cn ... ok
[INFO] [stdout] test cli_tests::test_build_localized_command_creates_valid_command ... ok
[INFO] [stdout] test cli_tests::test_guess_chip_from_firmware_path_bs25 ... ok
[INFO] [stdout] test cli_tests::test_localize_arg_known_key ... ok
[INFO] [stdout] test cli_tests::test_guess_chip_from_firmware_path_bs21e ... ok
[INFO] [stdout] test cli_tests::test_apply_config_does_not_override_explicit_cli_values ... ok
[INFO] [stdout] test cli_tests::test_cli_parse_write_program ... ok
[INFO] [stdout] test cli_tests::test_cli_parse_write ... ok
[INFO] [stdout] test cli_tests::test_main_help_zh_cn_has_localized_headings ... ok
[INFO] [stdout] test cli_tests::test_cli_parse_monitor_raw ... ok
[INFO] [stdout] test cli_tests::test_cli_parse_list_ports_json ... ok
[INFO] [stdout] test cli_tests::test_localize_arg_unknown_key ... ok
[INFO] [stdout] test cli_tests::test_parse_bin_arg_invalid_missing_address ... ok
[INFO] [stdout] test cli_tests::test_guess_chip_from_firmware_path_unknown ... ok
[INFO] [stdout] test cli_tests::test_map_exit_code_cancelled_is_130 ... ok
[INFO] [stdout] test cli_tests::test_parse_bin_arg_valid ... ok
[INFO] [stdout] test cli_tests::test_parse_hex_u32_invalid ... ok
[INFO] [stdout] test cli_tests::test_cli_global_options ... ok
[INFO] [stdout] test cli_tests::test_main_help_zh_cn_option_descriptions ... ok
[INFO] [stdout] test cli_tests::test_parse_bin_arg_invalid_address ... ok
[INFO] [stdout] test cli_tests::test_cli_invalid_chip ... ok
[INFO] [stdout] test cli_tests::test_parse_bin_arg_windows_path ... ok
[INFO] [stdout] test cli_tests::test_parse_bin_arg_no_prefix ... ok
[INFO] [stdout] test cli_tests::test_cli_parse_monitor ... ok
[INFO] [stdout] test cli_tests::test_parse_bin_arg_invalid_no_colon ... ok
[INFO] [stdout] test cli_tests::test_parse_hex_u32_with_whitespace ... ok
[INFO] [stdout] test cli_tests::test_parse_hex_u32_without_prefix ... ok
[INFO] [stdout] test cli_tests::test_parse_hex_u32_overflow ... ok
[INFO] [stdout] hisiflash 1.0.0-alpha.12
[INFO] [stdout] 
[INFO] [stdout] 跨平台海思芯片烧录工具 (WS63、BS2X 系列)
[INFO] [stdout] 
[INFO] [stdout] 用法:
[INFO] [stdout]   hisiflash [OPTIONS] <COMMAND>
[INFO] [stdout] 
[INFO] [stdout] 命令:
[INFO] [stdout]   flash          Flash a FWPKG firmware package
[INFO] [stdout]   write          Write raw binary files to flash
[INFO] [stdout]   write-program  Write a single binary with program data
[INFO] [stdout]   erase          Erase flash memory
[INFO] [stdout]   info           Show information about a firmware file
[INFO] [stdout]   list-ports     List available serial ports
[INFO] [stdout]   monitor        Open serial monitor
[INFO] [stdout]   completions    Generate shell completion scripts
[INFO] [stdout]   help           Print this message or the help of the given subcommand(s)
[INFO] [stdout] 
[INFO] [stdout] 选项:
[INFO] [stdout]   -p, --port <PORT>      使用的串口 (未指定时自动检测) [env: HISIFLASH_PORT=]
[INFO] [stdout]   -b, --baud <BAUD>      数据传输波特率 [env: HISIFLASH_BAUD=]
[INFO] [stdout]   -c, --chip <CHIP>      目标芯片型号 [env: HISIFLASH_CHIP=]
[INFO] [stdout]       --lang <LANG>      消息语言/区域设置 (如 en, zh-CN) [env: HISIFLASH_LANG=]
[INFO] [stdout]   -v, --verbose...       详细输出级别 (-v, -vv, -vvv 逐级增加)
[INFO] [stdout]   -q, --quiet            静默模式 (抑制非必要输出)
[INFO] [stdout]       --non-interactive  非交互模式 (出错时直接失败而非提示) [env: HISIFLASH_NON_INTERACTIVE=]
[INFO] [stdout]       --confirm-port     即使自动检测到端口也要确认选择
[INFO] [stdout]       --list-all-ports   List all available ports (including unknown types)
[INFO] [stdout]       --config <PATH>    Path to a configuration file
[INFO] [stdout]   -h, --help             打印帮助信息 (使用 '--help' 查看更多)
[INFO] [stdout]   -V, --version          打印版本信息
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] 环境变量:
[INFO] [stdout]   HISIFLASH_PORT              默认串口
[INFO] [stdout]   HISIFLASH_BAUD              默认波特率 (默认: 921600)
[INFO] [stdout]   HISIFLASH_CHIP              默认芯片类型 (ws63, bs2x, bs25)
[INFO] [stdout]   HISIFLASH_LANG              语言/区域设置 (en, zh-CN)
[INFO] [stdout]   HISIFLASH_NON_INTERACTIVE   非交互模式 (禁用提示)
[INFO] [stdout] 
[INFO] [stdout] 更多信息请访问: https://github.com/sanchuanhehe/hisiflash
[INFO] [stdout] test cli_tests::test_parse_hex_u32_zero ... ok
[INFO] [stdout] test cli_tests::test_partition_type_str_values ... ok
[INFO] [stdout] test cli_tests::test_main_help_en_has_english_headings ... ok
[INFO] [stdout] test cli_tests::test_run_short_version_returns_ok ... ok
[INFO] [stdout] test cli_tests::test_parse_hex_u32_with_prefix ... ok
[INFO] [stdout] test cli_tests::test_resolve_effective_chip_from_firmware_name ... ok
[INFO] [stdout] test cli_tests::test_run_version_returns_ok ... ok
[INFO] [stdout] test cli_tests::test_main_help_zh_cn_command_descriptions ... ok
[INFO] [stdout] test cli_tests::test_main_help_no_english_leaks_zh_cn ... ok
[INFO] [stdout] test cli_tests::test_resolve_effective_chip_non_interactive_unknown_fails ... ok
[INFO] [stdout] test cli_tests::test_parse_hex_u32_with_underscores ... ok
[INFO] [stdout] test cli_tests::test_run_no_args_returns_ok ... ok
[INFO] [stdout] test cli_tests::test_subcmd_erase_no_arguments_heading ... ok
[INFO] [stdout] test cli_tests::test_long_help_has_more_detail_than_short ... ok
[INFO] [stdout] test cli_tests::test_use_fancy_output_follows_tty_flag ... ok
[INFO] [stdout] test commands::completions::tests::test_detect_shell_type_returns_option ... ok
[INFO] [stdout] test commands::completions::tests::test_dirs_for_data_returns_path ... ok
[INFO] [stdout] test commands::completions::tests::test_home_dir_returns_value ... ok
[INFO] [stdout] test commands::completions::tests::test_install_path_bash ... ok
[INFO] [stdout] test commands::completions::tests::test_install_path_elvish ... ok
[INFO] [stdout] test commands::completions::tests::test_install_path_powershell ... ok
[INFO] [stdout] test commands::completions::tests::test_install_path_zsh ... ok
[INFO] [stdout] test commands::completions::tests::test_shell_from_path_bash ... ok
[INFO] [stdout] test commands::completions::tests::test_shell_from_path_elvish ... ok
[INFO] [stdout] test commands::completions::tests::test_shell_from_path_empty ... ok
[INFO] [stdout] test cli_tests::test_subcmd_completions_zh_cn_localized ... ok
[INFO] [stdout] test commands::completions::tests::test_shell_from_path_fish ... ok
[INFO] [stdout] test cli_tests::test_subcmd_help_flash_en_has_english_headings ... ok
[INFO] [stdout] test commands::completions::tests::test_shell_from_path_zsh ... ok
[INFO] [stdout] test commands::completions::tests::test_install_path_fish ... ok
[INFO] [stdout] test commands::completions::tests::test_xdg_config_dir_returns_path ... ok
[INFO] [stdout] test commands::firmware::tests::test_display_label_exact_base ... ok
[INFO] [stdout] test commands::firmware::tests::test_display_label_no_common_prefix ... ok
[INFO] [stdout] test commands::firmware::tests::test_display_label_with_base ... ok
[INFO] [stdout] test cli_tests::test_subcmd_help_flash_zh_cn_has_localized_headings ... ok
[INFO] [stdout] test cli_tests::test_subcmd_help_flash_no_english_leaks_zh_cn ... ok
[INFO] [stdout] test commands::firmware::tests::test_case_insensitive_extension ... ok
[INFO] [stdout] test commands::firmware::tests::test_find_no_firmware ... ok
[INFO] [stdout] test commands::firmware::tests::test_find_single_firmware ... ok
[INFO] [stdout] test commands::firmware::tests::test_human_size ... ok
[INFO] [stdout] test commands::firmware::tests::test_find_multiple_firmware ... ok
[INFO] [stdout] test commands::firmware::tests::test_resolve_no_firmware_empty_dir ... ok
[INFO] [stdout] test commands::firmware::tests::test_max_depth_exceeded ... ok
[INFO] [stdout] test commands::firmware::tests::test_priority_dirs ... ok
[INFO] [stdout] test commands::completions::tests::test_cmd_completions_fish_generates_output ... ok
[INFO] [stdout] test commands::firmware::tests::test_resolve_single_non_interactive ... ok
[INFO] [stdout] test commands::firmware::tests::test_resolve_multiple_non_interactive_fails ... ok
[INFO] [stdout] test commands::firmware::tests::test_resolve_with_explicit_path ... ok
[INFO] [stdout] test commands::firmware::tests::test_truncate_start_exact_fit ... ok
[INFO] [stdout] test commands::firmware::tests::test_truncate_start_cuts_left ... ok
[INFO] [stdout] test commands::firmware::tests::test_truncate_start_path_cuts_at_separator ... ok
[INFO] [stdout] test commands::firmware::tests::test_truncate_start_preserves_size_suffix ... ok
[INFO] [stdout] test commands::firmware::tests::test_truncate_start_short_string_unchanged ... ok
[INFO] [stdout] test commands::info::tests::test_format_partition_type_database_contains_text ... ok
[INFO] [stdout] test commands::info::tests::test_format_partition_type_all_variants_non_empty ... ok
[INFO] [stdout] test commands::info::tests::test_format_partition_type_efuse_contains_text ... ok
[INFO] [stdout] test commands::firmware::tests::test_truncate_start_very_narrow ... ok
[INFO] [stdout] test commands::completions::tests::test_shell_from_path_powershell ... ok
[INFO] [stdout] test commands::completions::tests::test_cmd_completions_bash_generates_output ... ok
[INFO] [stdout] test cli_tests::test_subcmd_write_zh_cn_localized ... ok
[INFO] [stdout] test commands::completions::tests::test_shell_from_path_unknown ... ok
[INFO] [stdout] test commands::info::tests::test_format_partition_type_flashboot_contains_text ... ok
[INFO] [stdout] test commands::info::tests::test_format_partition_type_kvnv_contains_text ... ok
[INFO] [stdout] test commands::info::tests::test_format_partition_type_loader_contains_text ... ok
[INFO] [stdout] test commands::info::tests::test_format_partition_type_normal_no_color ... ok
[INFO] [stdout] test commands::info::tests::test_format_partition_type_unknown_with_value ... ok
[INFO] [stdout] test commands::completions::tests::test_shell_from_path_just_name ... ok
[INFO] [stdout] test commands::completions::tests::test_cmd_completions_elvish_generates_output ... ok
[INFO] [stdout] test commands::info::tests::test_partition_type_str_matches_format_for_plain_variants ... ok
[INFO] [stdout] test commands::monitor::tests::test_contains_reset_evidence_flash_init_pattern ... ok
[INFO] [stdout] test commands::monitor::tests::test_contains_reset_evidence_verify_pattern ... ok
[INFO] [stdout] test commands::monitor::tests::test_format_output_empty_string ... ok
[INFO] [stdout] test commands::monitor::tests::test_contains_reset_evidence_negative_case ... ok
[INFO] [stdout] test commands::info::tests::test_format_partition_type_version_no_color ... ok
[INFO] [stdout] test commands::firmware::tests::test_skip_git_and_target ... ok
[INFO] [stdout] test commands::monitor::tests::test_format_output_no_timestamp_crlf_normalization ... ok
[INFO] [stdout] test commands::monitor::tests::test_contains_reset_evidence_boot_pattern ... ok
[INFO] [stdout] test cli_tests::test_subcmd_help_flash_zh_cn_has_localized_content ... ok
[INFO] [stdout] test commands::monitor::tests::test_format_output_no_timestamp_newline_normalization ... ok
[INFO] [stdout] test commands::monitor::tests::test_format_output_no_timestamp_plain ... ok
[INFO] [stdout] test commands::monitor::tests::test_format_output_no_timestamp_standalone_cr ... ok
[INFO] [stdout] test commands::monitor::tests::test_format_output_with_timestamp_inserts_prefix ... ok
[INFO] [stdout] test commands::monitor::tests::test_format_output_with_timestamp_only_at_line_start ... ok
[INFO] [stdout] test commands::monitor::tests::test_format_output_with_timestamp_after_newline ... ok
[INFO] [stdout] test commands::monitor::tests::test_split_utf8_mixed_valid_and_partial ... ok
[INFO] [stdout] test cli_tests::test_subcmd_help_flash_global_args_propagated ... ok
[INFO] [stdout] test commands::info::tests::test_partition_type_str_all_variants ... ok
[INFO] [stdout] test commands::monitor::tests::test_split_utf8_empty ... ok
[INFO] [stdout] test commands::monitor::tests::test_format_output_only_newlines ... ok
[INFO] [stdout] test commands::monitor::tests::test_split_utf8_partial_multibyte ... ok
[INFO] [stdout] test commands::monitor::tests::test_split_utf8_single_invalid_byte ... ok
[INFO] [stdout] test commands::monitor::tests::test_split_utf8_valid_ascii ... ok
[INFO] [stdout] test config::tests::test_config_merge_late_baud ... ok
[INFO] [stdout] test commands::monitor::tests::test_split_utf8_valid_multibyte ... ok
[INFO] [stdout] test config::tests::test_config_from_empty_toml ... ok
[INFO] [stdout] test config::tests::test_config_from_partial_toml ... ok
[INFO] [stdout] test cli_tests::test_subcmd_long_help_has_more_detail_than_short ... ok
[INFO] [stdout] test config::tests::test_config_from_toml ... ok
[INFO] [stdout] test config::tests::test_config_merge_baud ... ok
[INFO] [stdout] test config::tests::test_config_merge_does_not_overwrite_with_none ... ok
[INFO] [stdout] test config::tests::test_config_merge_usb_devices_extend ... ok
[INFO] [stdout] test config::tests::test_config_merge_serial ... ok
[INFO] [stdout] test config::tests::test_config_merge_skip_verify ... ok
[INFO] [stdout] test config::tests::test_default_config ... ok
[INFO] [stdout] test config::tests::test_default_connection_config ... ok
[INFO] [stdout] test config::tests::test_global_config_path_is_some ... ok
[INFO] [stdout] test config::tests::test_load_from_path_nonexistent ... ok
[INFO] [stdout] test config::tests::test_config_roundtrip_toml ... ok
[INFO] [stdout] test config::tests::test_usb_device_eq ... ok
[INFO] [stdout] test config::tests::test_usb_device_matches ... ok
[INFO] [stdout] test locale_tests::test_locale_chinese_variants ... ok
[INFO] [stdout] test config::tests::test_save_port_serialization_only ... ok
[INFO] [stdout] test locale_tests::test_locale_posix_defaults ... ok
[INFO] [stdout] test locale_tests::test_locale_unsupported_fallback ... ok
[INFO] [stdout] test config::tests::test_port_config_toml_roundtrip ... ok
[INFO] [stdout] test config::tests::test_remember_usb_device_no_duplicates ... ok
[INFO] [stdout] test serial::tests::test_is_known_device_from_config ... ok
[INFO] [stdout] test config::tests::test_remember_usb_device_creates_file ... ok
[INFO] [stdout] test serial::tests::test_is_known_device_builtin ... ok
[INFO] [stdout] test serial::tests::test_select_non_interactive_no_ports_returns_usage_error ... ok
[INFO] [stdout] test serial::tests::test_is_known_device_no_vid_pid ... ok
[INFO] [stdout] test config::tests::test_load_from_path_valid ... ok
[INFO] [stdout] test serial::tests::test_select_non_interactive_multiple_ports_returns_usage_error ... ok
[INFO] [stdout] test serial::tests::test_select_non_interactive_single_port_returns_selected_port ... ok
[INFO] [stdout] test serial::tests::test_selected_port_fields ... ok
[INFO] [stdout] test serial::tests::test_serial_options_clone ... ok
[INFO] [stdout] test serial::tests::test_serial_options_default ... ok
[INFO] [stdout] test config::tests::test_global_config_dir_is_some ... ok
[INFO] [stdout] test config::tests::test_default_flash_config ... ok
[INFO] [stdout] test locale_tests::test_locale_english_variants ... ok
[INFO] [stdout] test config::tests::test_save_port_without_vid_pid ... ok
[INFO] [stdout] test serial::tests::test_truncate_port_label_handles_ansi ... ok
[INFO] [stdout] test config::tests::test_save_port_creates_valid_toml ... ok
[INFO] [stdout] test commands::completions::tests::test_cmd_completions_powershell_generates_output ... ok
[INFO] [stdout] test config::tests::test_usb_device_clone ... ok
[INFO] [stdout] test commands::completions::tests::test_cmd_completions_zsh_generates_output ... ok
[INFO] [stdout] test config::tests::test_default_port_config ... ok
[INFO] [stdout] test serial::tests::test_is_known_device_unknown ... ok
[INFO] [stdout] test serial::tests::test_serial_options_with_port ... ok
[INFO] [stdout] test serial::tests::test_truncate_port_label_right_preserves_left ... ok
[INFO] [stdout] test config::tests::test_remember_usb_device_multiple_different ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 187 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_contract.rs (/opt/rustwide/target/debug/deps/cli_contract-2c5a5634ae82db20)
[INFO] [stdout] 
[INFO] [stdout] running 31 tests
[INFO] [stdout] test colors_disabled_when_not_tty ... ok
[INFO] [stdout] test erase_command_invalid_args_writes_to_stderr_only ... ok
[INFO] [stdout] test info_json_error_returns_clean_error_json ... ok
[INFO] [stdout] test info_json_success_returns_structured_json ... ok
[INFO] [stdout] test flash_command_writes_to_stderr_only ... ok
[INFO] [stdout] test completions_command_writes_to_stdout ... ok
[INFO] [stdout] test non_interactive_environment_variable_works ... ok
[INFO] [stdout] test non_interactive_flag_is_recognized ... ok
[INFO] [stdout] test json_output_is_valid_json_without_extra_lines ... ok
[INFO] [stdout] test info_command_with_valid_file_writes_to_stdout ... ok
[INFO] [stdout] test exit_code_130_for_cancelled_operation ... ok
[INFO] [stdout] test exit_code_one_for_unexpected_error ... ok
[INFO] [stdout] test unknown_command_suggests_similar ... ok
[INFO] [stdout] test option_terminator_with_flash_command ... ok
[INFO] [stdout] test exit_code_zero_on_success ... ok
[INFO] [stdout] test unknown_flag_suggests_similar ... ok
[INFO] [stdout] test short_help_exits_zero_and_writes_stdout_only ... ok
[INFO] [stdout] test short_version_exits_zero_and_writes_stdout_only ... ok
[INFO] [stdout] test version_exits_zero_and_writes_stdout_only ... ok
[INFO] [stdout] test write_command_invalid_args_writes_to_stderr_only ... ok
[INFO] [stdout] test help_exits_zero_and_writes_stdout_only ... ok
[INFO] [stdout] test exit_code_four_for_device_not_found ... ok
[INFO] [stdout] test list_ports_json_returns_valid_json ... ok
[INFO] [stdout] test exit_code_two_for_usage_error_invalid_flag ... ok
[INFO] [stdout] test info_json_error_keeps_stdout_clean ... ok
[INFO] [stdout] test non_interactive_flash_with_multiple_firmwares_fails_fast ... ok
[INFO] [stdout] test help_includes_usage_examples ... ok
[INFO] [stdout] test exit_code_two_for_usage_error_missing_required_arg ... ok
[INFO] [stdout] test exit_code_two_for_usage_error_unknown_command ... ok
[INFO] [stdout] test option_terminator_allows_dash_prefixed_operand ... ok
[INFO] [stdout] test exit_code_three_for_config_error_invalid_file ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.40s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests hisiflash
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test hisiflash/src/lib.rs - (line 31) ... ignored
[INFO] [stdout] test hisiflash/src/lib.rs - (line 48) ... ignored
[INFO] [stdout] test hisiflash/src/port/mod.rs - port (line 35) - compile ... ok
[INFO] [stdout] test hisiflash/src/target/ws63/flasher.rs - target::ws63::flasher::Ws63Flasher<P>::with_cancel (line 172) ... ignored
[INFO] [stdout] test hisiflash/src/protocol/crc.rs - protocol::crc::crc16_xmodem (line 46) ... ok
[INFO] [stdout] test hisiflash/src/lib.rs - (line 67) - compile ... ok
[INFO] [stdout] test hisiflash/src/target/ws63/flasher.rs - target::ws63::flasher (line 15) - compile ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.60s; merged doctests compilation took 0.59s
[INFO] running `Command { std: "docker" "inspect" "ff74478587c17db3cb62c53f353b3d51e400dd25714ceb05375440094d14cef3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ff74478587c17db3cb62c53f353b3d51e400dd25714ceb05375440094d14cef3", kill_on_drop: false }`
[INFO] [stdout] ff74478587c17db3cb62c53f353b3d51e400dd25714ceb05375440094d14cef3
